
// Boost Includes ==============================================================
#include <boost/python.hpp>
#include <boost/cstdint.hpp>

// Includes ====================================================================
#include <OpenSG/OSGBinaryDataHandler.h>
#include <OpenSG/OSGField.h>
#include <OpenSG/OSGFieldContainer.h>

// Using =======================================================================
using namespace boost::python;

// Declarations ================================================================
namespace  {

BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(osg_FieldContainer_dump_overloads_0_2, dump, 0, 2)


}// namespace


// Module ======================================================================
void Export_src_pyste_FieldContainer()
{
    scope* osg_FieldContainer_scope = new scope(
    class_< osg::FieldContainer, boost::noncopyable >("FieldContainer", no_init)
//        .def_readonly("isNodeCore", &osg::FieldContainer::isNodeCore)
        .def("getClassType", &osg::FieldContainer::getClassType, return_internal_reference< 1 >())
        .def("getClassTypeId", &osg::FieldContainer::getClassTypeId)
        .def("getClassGroupId", &osg::FieldContainer::getClassGroupId)
        .def("getType", (osg::FieldContainerType& (osg::FieldContainer::*)() )&osg::FieldContainer::getType, return_internal_reference< 1 >())
        .def("getType", (const osg::FieldContainerType& (osg::FieldContainer::*)() const)&osg::FieldContainer::getType, return_internal_reference< 1 >())
        .def("getTypeId", &osg::FieldContainer::getTypeId)
        .def("getGroupId", &osg::FieldContainer::getGroupId)
        .def("getTypeName", &osg::FieldContainer::getTypeName)
        .def("getContainerSize", &osg::FieldContainer::getContainerSize)
        .def("getField", (osg::Field* (osg::FieldContainer::*)(osg::UInt32) )&osg::FieldContainer::getField, return_internal_reference< 1 >())
        .def("getField", (osg::Field* (osg::FieldContainer::*)(const osg::Char8*) )&osg::FieldContainer::getField, return_internal_reference< 1 >())
        .def("shallowCopy", &osg::FieldContainer::shallowCopy)
        .def("getBinSize", &osg::FieldContainer::getBinSize)
        .def("copyToBin", &osg::FieldContainer::copyToBin)
        .def("copyFromBin", &osg::FieldContainer::copyFromBin)
        .def("changed", &osg::FieldContainer::changed)
        .def("dump", &osg::FieldContainer::dump, osg_FieldContainer_dump_overloads_0_2())
        .staticmethod("getClassType")
        .staticmethod("getClassGroupId")
        .staticmethod("getClassTypeId")
    );

    class_< osg::FieldContainer::attempt_to_create_CoredNodePtr_on_non_NodeCore_FC >("attempt_to_create_CoredNodePtr_on_non_NodeCore_FC", init< const osg::FieldContainer::attempt_to_create_CoredNodePtr_on_non_NodeCore_FC& >())
    ;


    scope().attr("NextFieldId") = (int)osg::FieldContainer::NextFieldId;

    delete osg_FieldContainer_scope;

}

